import logging
import redis


# 1.1定义配置的类，从中加载配置（项目配置文件）
class Config(object):
    # 2.3 SQLAlchemy的配置信息
    SQLALCHEMY_DATABASE_URI = 'mysql://root:mysql@127.0.0.1/python9'
    SQLALCHEMY_TRACK_MODIFICATIONS = False
    # 在请求结束之前，自动提交数据库修改,是在请求函数中最后执行的
    SQLALCHEMY_COMMIT_ON_TEARDOWN = True

    # 3.3 配置redis
    REDIS_HOST = '127.0.0.1'
    REDIS_PORT = 6379

    # 5.3设置秘钥
    # import os,base64
    # base64.b64encode(os.urandom(32))
    SECRET_KEY = 'QH2A2M8IuzG1vmAJSIzqMHGre/JTkbZjgSigL1f8E7Y='

    # 配置Flask-Session扩展
    SESSION_TYPE = 'redis'  # 设置要同步的位置
    SESSION_REDIS = redis.StrictRedis(host=REDIS_HOST, port=REDIS_PORT)  # 设置redis的地址ip和端口
    # SESSION_KEY_PREFIX = 'session'  默认值是session
    SESSION_USE_SIGNER = True  # 设置用户签名，开启签名，保证数据安全
    PERMANENT_SESSION_LIFETIME = 86400 * 7  # 持久永恒，session的有效期,配置过期时间7天

    # 6.4 设置DEBUG
    # DEBUG = True


# 10.1项目多种配置
# 11.5配置日志
class DevelopmentConfig(Config):
    """开发模式下的配置"""
    DEBUG = True
    LOG_LEVEL = logging.DEBUG


class ProductionCondig(Config):
    """生产模式下的配置"""
    DEBUG = False
    LOG_LEVEL = logging.WARNING


